package com.xjy.system.mapper;

import com.xjy.system.domain.SysMaterialMng;
import com.xjy.system.domain.bo.SysMaterialMngAddBo;
import com.xjy.system.domain.bo.SysMaterialMngEditBo;
import com.xjy.system.domain.bo.SysMaterialMngQueryBo;
import com.xjy.system.domain.vo.SysMaterialMngVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 标题：SysMaterialMngDao
 * 说明：DAO对象,表数据库访问层
 * 时间：2022-03-21 09:22:31
 * 作者：NLj-LHQ
 */


public interface SysMaterialMngMapper {

	/**
	 * 根据主键查询
	 *
	 * @param id
	 * @return
	 */
	SysMaterialMngVo queryDetailById(@Param("id") Long id);

	/**
	 * 根据实体查询
	 *
	 * @param searchData
	 * @return
	 */
	SysMaterialMngVo queryDetailBy(@Param("searchData") SysMaterialMngQueryBo searchData);

	/**
	 * 根据ID验证一条数据是否存在
	 *
	 * @param id
	 * @return
	 */
	int queryCheckById(@Param("id") Long id);

	/**
	 * 根据实体验证一条数据是否存在
	 *
	 * @param searchData
	 * @return
	 */
	int queryCheckBy(@Param("searchData") SysMaterialMngQueryBo searchData);

	/**
	 * 根据实体查询多条数据（不分页）
	 *
	 * @param searchData
	 * @return
	 */
	List<SysMaterialMngVo> queryList(@Param("searchData") SysMaterialMngQueryBo searchData);


	/**
	 * 根据实体查询数据量
	 *
	 * @param searchData 实例对象
	 * @return 对象列表
	 */
	Integer queryTotal(@Param("searchData") SysMaterialMngQueryBo searchData);

	/**
	 * 新增
	 *
	 * @param insertData
	 * @return PO对象
	 */
	boolean insert(@Param("insertData") SysMaterialMng insertData);

	/**
	 * 批量新增
	 *
	 * @param insertDataList
	 * @return PO对象集合
	 */
	boolean insertList(@Param("insertDataList") List<SysMaterialMngAddBo> insertDataList);

	/**
	 * 更新数据
	 *
	 * @param updateData
	 * @return
	 */
	boolean update(@Param("updateData") SysMaterialMng updateData);

	/**
	 * 批量更新
	 *
	 * @param updateDataList
	 * @return
	 */
	boolean updateList(@Param("updateDataList") List<SysMaterialMngEditBo> updateDataList);

	/**
	 * 根据ID删除数据
	 *
	 * @param id
	 * @return
	 */
	boolean deleteById(@Param("id") Long id);

	/**
	 * 批量删除
	 *
	 * @param idList
	 * @return
	 */
	boolean deleteByIds(@Param("idList") List<Long> idList);

	/**
	 * 根据实体删除
	 *
	 * @param deleteData
	 * @return
	 */
	boolean deleteBy(@Param("deleteData") SysMaterialMngQueryBo deleteData);

}
